YES(O(1),O(n^2)) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { or(x, true()) -> true() , or(true(), y) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y) , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { or(x, true()) -> true() , or(true(), y) -> true() , or(false(), false()) -> false() , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-restricted polynomial interpretation. [or](x1, x2) = 1 + x1 + x2 [true]() = 0 [false]() = 0 [mem](x1, x2) = x1 + x1*x2 + 2*x2 [nil]() = 0 [set](x1) = x1 [=](x1, x2) = x1 + x2 [union](x1, x2) = 1 + x1 + x2 This order satisfies the following ordering constraints. [or(x, true())] = 1 + x > = [true()] [or(true(), y)] = 1 + y > = [true()] [or(false(), false())] = 1 > = [false()] [mem(x, nil())] = x >= = [false()] [mem(x, set(y))] = x + x*y + 2*y >= x + y = [=(x, y)] [mem(x, union(y, z))] = 2*x + x*y + x*z + 2 + 2*y + 2*z > 1 + 2*x + x*y + 2*y + x*z + 2*z = [or(mem(x, y), mem(x, z))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y) } Weak Trs: { or(x, true()) -> true() , or(true(), y) -> true() , or(false(), false()) -> false() , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { mem(x, set(y)) -> =(x, y) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-restricted polynomial interpretation. [or](x1, x2) = x1 + x2 [true]() = 0 [false]() = 0 [mem](x1, x2) = 2*x1 + 2*x1*x2 + x2 [nil]() = 0 [set](x1) = 1 + x1 [=](x1, x2) = x1 + x2 [union](x1, x2) = 2 + x1 + x2 This order satisfies the following ordering constraints. [or(x, true())] = x >= = [true()] [or(true(), y)] = y >= = [true()] [or(false(), false())] = >= = [false()] [mem(x, nil())] = 2*x >= = [false()] [mem(x, set(y))] = 4*x + 2*x*y + 1 + y > x + y = [=(x, y)] [mem(x, union(y, z))] = 6*x + 2*x*y + 2*x*z + 2 + y + z > 4*x + 2*x*y + y + 2*x*z + z = [or(mem(x, y), mem(x, z))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { mem(x, nil()) -> false() } Weak Trs: { or(x, true()) -> true() , or(true(), y) -> true() , or(false(), false()) -> false() , mem(x, set(y)) -> =(x, y) , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { mem(x, nil()) -> false() } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-restricted polynomial interpretation. [or](x1, x2) = x1 + x2 [true]() = 0 [false]() = 0 [mem](x1, x2) = 1 + x1 + x1*x2 + 2*x2 [nil]() = 0 [set](x1) = x1 [=](x1, x2) = x1 + x2 [union](x1, x2) = 2 + x1 + x2 This order satisfies the following ordering constraints. [or(x, true())] = x >= = [true()] [or(true(), y)] = y >= = [true()] [or(false(), false())] = >= = [false()] [mem(x, nil())] = 1 + x > = [false()] [mem(x, set(y))] = 1 + x + x*y + 2*y > x + y = [=(x, y)] [mem(x, union(y, z))] = 5 + 3*x + x*y + x*z + 2*y + 2*z > 2 + 2*x + x*y + 2*y + x*z + 2*z = [or(mem(x, y), mem(x, z))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { or(x, true()) -> true() , or(true(), y) -> true() , or(false(), false()) -> false() , mem(x, nil()) -> false() , mem(x, set(y)) -> =(x, y) , mem(x, union(y, z)) -> or(mem(x, y), mem(x, z)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded Hurray, we answered YES(O(1),O(n^2))